package com.zhang.family_doctor.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigInteger;
import java.util.Date;

/**
 * 居民表实体
 *
 * CREATE TABLE `resident` (
 *   `id` int NOT NULL COMMENT '居民表主键',
 *   `name` varchar(20) DEFAULT NULL COMMENT '真实姓名',
 *   `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '联系电话',
 *   `idCard` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '身份证号',
 *   `password` varchar(30) DEFAULT NULL COMMENT '密码',
 *   `image` varchar(255) DEFAULT NULL COMMENT '头像',
 *   `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '现居地址',
 *   `residence_address` varchar(255) DEFAULT NULL COMMENT '户籍地址',
 *   `division` varchar(255) DEFAULT NULL COMMENT '行政区划',
 *   `sex` int DEFAULT NULL COMMENT '性别：1：男， 2：女',
 *   `birthday` timestamp NULL DEFAULT NULL COMMENT '出生日期',
 *   `native_place` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '籍贯   ',
 *   `nation` int DEFAULT NULL COMMENT '民族: 1:汉族 ，2：回族， 3：维吾尔族 ，4：壮族 ，5：其他少数民族',
 *   `education` int DEFAULT NULL COMMENT '文化程度：1:小学 ，2：初中， 3：高中/中专， 4:大专及以上 ，5：不详',
 *   `marital` int DEFAULT NULL COMMENT '婚姻状况 ： 1：未婚 ，2：已婚，3：离异；4：丧偶；5：不祥',
 *   `work` varchar(255) DEFAULT NULL COMMENT '职业',
 *   `work_unit` varchar(255) DEFAULT NULL COMMENT '工作单位',
 *   `emergency_contact` varchar(255) DEFAULT NULL COMMENT '紧急联系人',
 *   `contact_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '\r\n联系人电话',
 *   `census_types` int DEFAULT NULL COMMENT '\r\n户籍类型 :1:农村 2：城市',
 *   `medical_unit` varchar(255) DEFAULT NULL COMMENT '定点医疗单位',
 *   `cost_types` int DEFAULT NULL COMMENT '\r\n费用类型 :1:自费，2：社会医疗保险，3：商业保险，4：新农合，5：其他',
 *   `relation_myself` int DEFAULT NULL COMMENT '与本人关系：1：本人， 2：父母 ，3：夫妻，4：姐妹，5兄弟',
 *   `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
 *   `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
 *   `source` int DEFAULT NULL COMMENT '来源: 1、用户注册，2、后台新增，3、是家庭成员添加',
 *   PRIMARY KEY (`id`)
 * ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 */
@Data
@ApiModel("居民表实体")
public class Resident {

    /**
     * 居民表主键id
     */
    @ApiModelProperty("居民表主键id")
    private Integer id;

    @ApiModelProperty("居民编号")
    private Integer number;

    /**
     *真实姓名
     */
    @ApiModelProperty("真实姓名")
    private String name;

    /**
     * 身份证号码
     */
    @ApiModelProperty("身份证号码")
    private String idCard;

    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    private String phone;

    /**
     * 密码
     */
    @ApiModelProperty("密码")
    private String password;

    /**
     * 头像
     */
    @ApiModelProperty("头像")
    private String image;

    /**
     * 现居地址
     */
    @ApiModelProperty("现居地址")
    private String address;

    /**
     * 户籍地址
     */
    @ApiModelProperty("户籍地址")
    private String residenceAddress;

    /**
     * 行政区划
     */
    @ApiModelProperty("行政区划")
    private String division;

    /**
     * 性别：1：男， 2：女
     */
    @ApiModelProperty("性别：1：男， 2：女")
    private Integer sex;

    /**
     * 出生日期
     */
    @ApiModelProperty("出生日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 籍贯
     */
    @ApiModelProperty("籍贯")
    private String nativePlace;

    /**
     *民族: 1:汉族 ，2：回族， 3：维吾尔族 ，4：壮族 ，5：其他少数民族
     */
    @ApiModelProperty("民族: 1:汉族 ，2：回族， 3：维吾尔族 ，4：壮族 ，5：其他少数民族")
    private Integer nation;

    /**
     * 文化程度：1:小学 ，2：初中， 3：高中/中专， 4:大专及以上 ，5：不详
     */
    @ApiModelProperty("文化程度：1:小学 ，2：初中， 3：高中/中专， 4:大专及以上 ，5：不详")
    private Integer education;

    /**
     * 婚姻状况 ： 1：未婚 ，2：已婚，3：离异；4：丧偶；5：不祥
     */
    @ApiModelProperty("婚姻状况 ： 1：未婚 ，2：已婚，3：离异；4：丧偶；5：不祥")
    private Integer marital;

    /**
     * 职业
     */
    @ApiModelProperty("职业")
    private String work;

    /**
     * 工作单位
     */
    @ApiModelProperty("工作单位")
    private String workUnit;

    /**
     * 紧急联系人
     */
    @ApiModelProperty("紧急联系人")
    private String emergencyContact;

    /**
     * 联系人电话
     */
    @ApiModelProperty("联系人电话")
    private Long contactPhone;

    /**
     * 户籍类型 :1:农村 2：城市
     */
    @ApiModelProperty("户籍类型 :1:农村 2：城市")
    private Integer censusTypes;

    /**
     * 定点医疗单位
     */
    @ApiModelProperty("定点医疗单位")
    private String medicalUnit;

    /**
     * 费用类型 :1:自费，2：社会医疗保险，3：商业保险，4：新农合，5：其他
     */
    @ApiModelProperty("费用类型 :1:自费，2：社会医疗保险，3：商业保险，4：新农合，5：其他")
    private Integer costTypes;

    /**
     * 与本人关系：1：本人， 2：父母 ，3：夫妻，4：姐妹，5:兄弟
     */
    @ApiModelProperty("与本人关系：1：本人， 2：父母 ，3：夫妻，4：姐妹，5:兄弟")
    private Integer relationMyself;

    /**
     * 来源: 1、用户注册，2、后台新增，3、是家庭成员添加
     */
    @ApiModelProperty("来源: 1、用户注册，2、后台新增，3、是家庭成员添加")
    private Integer source;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /**
     * 验证码
     */
    @ApiModelProperty("验证码")
    private String code;
}
